package model

import "fmt"

/**
 * @author: guangcheng
 * @date:   2020/11/23 9:48
 * @version  V1.0
 * @description:
 *
 */
//编写一个学生考试系统
type Student struct {
	Name  string
	Age   int
	Score int
}

//将Pupil 和 Graduate 共有的方法也绑定到 *Student
func (stu *Student) ShowInfo() {
	fmt.Printf("学生名=%v 年龄=%v 成绩=%v\n", stu.Name, stu.Age, stu.Score)
}
func (stu *Student) SetScore(score int) {
	//业务判断
	stu.Score = score
}

//给 *Student 增加一个方法，那么 Pupil 和 Graduate都可以使用该方法
func (stu *Student) GetSum(n1 int, n2 int) int {
	return n1 + n2
}

//小学生
type Pupil struct {
	Student //嵌入了Student匿名结构体
}

//显示他的成绩

//这时Pupil结构体特有的方法，保留
func (p *Pupil) Testing() {
	fmt.Println("小学生正在考试中.....")
}

//大学生, 研究生。。

//大学生
type Graduate struct {
	Student //嵌入了Student匿名结构体
}

//显示他的成绩
//这时Graduate结构体特有的方法，保留
func (p *Graduate) Testing() {
	fmt.Println("大学生正在考试中.....")
}
